package kilim.examples;

import kilim.ExitMsg;
import kilim.Mailbox;
import kilim.Pausable;
import kilim.Task;

public class HelloWorldTask extends Task {
    static Mailbox<String> mb = new Mailbox<String>();
    static Mailbox<ExitMsg> exitmb = new Mailbox<ExitMsg>();        
    int type=0;                         //Task的类型区分，0表示接收者，1表示发送者
    public HelloWorldTask(int type){
        this.type=type;
    }
    
    public static void main(String[] args) throws Exception {
        Task sender = new HelloWorldTask(1).start();
        Task reciever = new HelloWorldTask(0).start();
        reciever.informOnExit(exitmb);      //要求接收者在结束后，填写退出邮箱
        exitmb.getb();                  //退出邮箱中内容，表示接收者已经结束
        System.exit(0);
    }
    
    public void execute() throws Pausable{
        if(type==0){                    //接收者
                while (true) {
                    String s = mb.get();    //取得邮箱中的信息
                    if (s.equals("over"))   //如果是结束标记
                    break;
                    System.out.print(s);
                }
        }else if(type==1){              //发送者
              mb.putnb("Hello ");       //向邮箱中传递信息
              mb.putnb("World\n");
              mb.putnb("over");
            }
    }
}
